package main

import (
	"fmt"
	"github.com/signintech/gopdf"
	"os"
)

func GetFont(pdf *gopdf.GoPdf, fontPath string) (err error) {
	b, err := os.Open(fontPath)
	if err != nil {
		return err
	}
	err = pdf.AddTTFFontByReader("Ubuntu-L", b)
	if err != nil {
		return err
	}
	return err
}

func DrawText(pdf *gopdf.GoPdf, x float64, y float64, text string) error {
	// 设置字体
	err := pdf.SetFont("Ubuntu-L", "", 14)
	if err != nil {
		return err
	}

	// 设置坐标
	pdf.SetX(x)
	pdf.SetY(y)

	// 写入文字
	err = pdf.Text("1.Hello World")
	if err != nil {
		return err
	}
	return nil
}

// Demo1 简单按照坐标写入
func Demo1() {
	pdf := &gopdf.GoPdf{}
	pdf.Start(gopdf.Config{PageSize: *gopdf.PageSizeA4})

	// 获取字体
	err := GetFont(pdf, "./Ubuntu-L.ttf")
	if err != nil {
		fmt.Println(err.Error())
		return
	}

	// 创建页面
	pdf.AddPage()
	err = DrawText(pdf, 100, 100, "hello world")
	if err != nil {
		fmt.Println(err.Error())
		return
	}

	// 保存为文件
	err = pdf.WritePdf("hello.pdf")
	if err != nil {
		fmt.Println(err.Error())
	}
}

func Demo2() error {
	return nil
}

func main() {
	//Demo1()
	err := Demo2()
	if err != nil {
		fmt.Println(err.Error())
	}
}
